package com.kevinkk.hashmap;

/**
 * 给你两个字符串：ransomNote 和 magazine ，判断 ransomNote 能不能由 magazine 里面的字符构成。
 * 如果可以，返回 true ；否则返回 false 。
 * magazine 中的每个字符只能在 ransomNote 中使用一次。
 *
 * 这道题和普通 字母异位词 差不多，只是说这里要求 rCount[i] > mCount[i] 而不是严格等于
 */

public class RansomNote {
    class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            char[] rArry = ransomNote.toCharArray(), mArray = magazine.toCharArray();
            int[] rCount = new int[26], mCount = new int[26];
            for (char c : rArry)
                rCount[c - 'a']++;
            for (char c : mArray)
                mCount[c - 'a']++;
            for (int i = 0; i < 26; i++) {
                if (rCount[i] > mCount[i])
                    return false;
            }

            return true;
        }
    }
}
